<?php
namespace Admin\Model;
use Think\Model;
/**
 * 关键字模型
 */
 class WxkeywordsModel extends  Model{
 	/**
	 * 定义自动验证
	 */
	 public $_validate = array();
	 
 	/**
	 * 关键字管理首页
	 */
	 public function index(){
	 	$this->display();
	 }
	 
	 /**
	  * 添加关键字回复内容  
	  * 默认通用方法 文字、图片、视频、语音 集合为一个通用方法
	  */
	public function addKeyWords(){
	
		$this->_validate=array(
			array('wxkeyword','require','关键字不能为空'),
			array('wxkcontent','require','内容描述不能为空'),	
		);
		if(!$this->create()){
			return false;
		}
		$data = $_POST;
		$data['wxkeyword'] = ','.$data['wxkeyword'].',';
		$data['wxkuid'] = $_SESSION['uid'];
		$data['wxkaddtime'] = time();
		$wxktype = I('post.wxktype');		
		if($wxktype == 0){		//0为文本类型回复 
			M('wxkeywords')->add($data);
		}else{					//不为文本类型回复  1.2.3对应图片、视频、语音
			//判断是否有文件信息  //远程文件和 本地文件都为空 则返回false
			if($data['wxkfileurl'] == ''){
				$this->error='附件不能为空';
				return false;
			}else{
				//将资源保存数据库 并推送到微信服务器
				if($wxktype == 1){
					$file_Type = 'image';
				}else if( $wxktype == 2){
					$file_Type = 'video';
				}else if( $wxktype == 3){
					$file_Type = 'voice';
				}else if( $wxktype == 4){ 
					$file_Type = 'thumb';
				}
					/**
					 * Api
					 */
						$uid = $_SESSION['uid'];			//获取用户id
				        // 保存access_token //初始化缓存设置
				        S(array(
				            'type'=>'file', 			//缓存方式文件类型
				            'prefix'=>'weixin_'.$uid.'_',			//缓存前缀
				            'expire'=>7200				//缓存时间
				        ));
						$userApi = M('wxapi')->where("wxuid='{$uid}'")->find();
				        // 开发者中心-配置项-AppID(应用ID)
				        $appId = $userApi['appid'];
				        // 开发者中心-配置项-AppSecret(应用密钥)
				        $appSecret = $userApi['appsecret'];
				        // 开发者中心-配置项-服务器配置-Token(令牌)
				        $token = $userApi['wxtoken'];
				        // 开发者中心-配置项-服务器配置-EncodingAESKey(消息加解密密钥)
				        $encodingAESKey = '072vHYArTp33eFwznlSvTRvuyOTe5YME1vxSoyZbzaV';
				
				        // wechat模块 - 处理用户发送的消息和回复消息
				        $wechat = new \Gaoming13\WechatPhpSdk\Wechat(array(
				            'appId' => $appId,
				            'token' => 	$token,
				            'encodingAESKey' =>	$encodingAESKey //可选
				        ));						
				        // api模块 - 包含各种系统主动发起的功能
				        $api = new \Gaoming13\WechatPhpSdk\Api(
				            array(
				                'appId' => $appId,
				                'appSecret'	=> $appSecret,
				                'get_access_token' => function(){
									 return S('wechat_token');
				                },
				                'save_access_token' => function($token) {
									S('wechat_token', $token);
				                }
				            )
				        );	
					$file = $data['wxkfileurl'];//获取上传文件路径
					$file = realpath($file);	//将上传文件路径转为绝对路径
					list($err, $res) = $api->add_material($file_Type, $file);
					p($err);
					p($res);
//					if ($res) {
					    // 接口正确返回处理						   				    	
					if($err['media_id']){
//					    	$this->error = 'media_id为空，请检查新增'.$file_Type.'永久素材';
//							return false;
//					    }
					   $data['wxkfilemedia_id'] = $err['media_id'];
					   $data['wxmedia_url'] = $err['url'];			
					   M('wxkeywords')->add($data);
					   return true;
					} else {
					    // 接口错误返回处理
					    $this->error='图片推送失败  '.$err['errcode'].' '.$err['errmsg'];
						return false;
					}
			}
		}
//		return true;
	}
	
	


 }
